遗传算法的Python实现


遗传算法是一种启发式算法,在优化问题中应用非常之广泛。由于是一种启发式算法,除了用于优化问题外,也有人将之应用到分类、聚类等问题的求解中,取得了非常好的效果。算法设计和参数选择对遗传算法来说非常重要,为此,笔者对遗传算法进行了实现,并比较了不同参数对问题求解的影响。

遗传算法的基本原理

遗传算法主要是受自然界“优胜劣汰、适者生存”启发而设计出来的一种算法,体现的思想是:如果每次都保留适应生存环境的个体,并使之繁衍生息,将以较大概率得到优质群体。需要厘清以下概念:

  1. 种群:个体的集合,可认为是全部可行解的一个子集(个人认为种群还应该包括各类算子、规则的定义);
  2. 个体 :代表着可行解(并不一定是最优解);
  3. 染色体:由基因组成,实质上是自变量的编码方式,在个体的本质特征;
  4. 选择:留下适应度高的个体,淘汰适应度低的个体;
  5. 交叉:两个父代染色体之间进行交叉,可以产生下一代(通常是一对);
  6. 变异:复制过程中可能会产生偏差,是保证种群多样性的重要操作。

优化目标

此程序主要是针对形如以下的函数优化问题。
max ⁡ f ( x 1 , x 2 , . . . . , x n ) s . t . a 1 ≤ x 1 ≤ b 1 a 2 ≤ x 2 ≤ b 2 . . . . a n ≤ x n ≤ b n \max f(x_1,x_2,....,x_n) \\ s.t. a_1 \le x_1 \le b_1 \\ a_2 \le x_2 \le b_2 \\ ....\\ a_n \le x_n \le b_n maxf(x1,x2,....,xn)s.t.a1x1b1a2x2<

  • 1
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值